#ifndef WIDGET_ASSIST_BACKDROP_H
#define WIDGET_ASSIST_BACKDROP_H

#include <QWidget>
#include <QPainter>
#include <QPen>
#include <QBrush>

#include <QColor>       // 颜色类
#include <QFont>        // 字体类
#include <QRect>        // 矩形类

#include <QDebug>       // 调试输出类
#include <QString>      // 字符串类

#include <QMouseEvent>  // 鼠标事件类
#include <QEvent>       // Qt 事件基类

#define Mode_No         0   // 无事件
#define Mode_enter      1   // 鼠标进入
#define Mode_leave      2   // 鼠标离开
#define Mode_Press      3   // 鼠标按下
#define Mode_Release    4   // 鼠标释放


class Widget_Assist_Backdrop : public QWidget
{
    Q_OBJECT
public:
    explicit Widget_Assist_Backdrop(QWidget *parent = nullptr);
    
protected:
    // 按钮状态码
    int Mode_Code = -1;

    // 是否按下标志
    bool isPressed = false;

protected:
    // 绘图事件
    void paintEvent(QPaintEvent *event);

    // 进入事件
    void enterEvent(QEvent *event);

    // 离开事件
    void leaveEvent(QEvent *event);

    // 按下事件
    void mousePressEvent(QMouseEvent *event);

    // 释放事件
    void mouseReleaseEvent(QMouseEvent *event) override;

    
signals:

private:
    // 绘画函数
    void drawBackground(QPainter &painter, const QColor &color);
    
};

#endif // WIDGET_ASSIST_BACKDROP_H

